Numerous types of consumer electronics products rely on some form of mass storage for retaining data or software for the execution of code by a microcontroller. Such consumer electronics are prolific, and include devices such as personal digital assistants (PDA's), portable music players, portable multimedia players (PMP's) and digital cameras. In PDA's, mass storage is required for storing applications and data, while portable music players and digital cameras require large amounts of mass storage for retaining music file data and/or image data. The mass storage solution for such portable electronics is preferably small in size, consumes minimal power, and has high storage density. This limits the selection to non-volatile forms of memory since volatile memories, such as static random access memory (SRAM) and dynamic random access memory (DRAM), require a constant application of power in order to retain data. As is known in the art, portable electronics rely on batteries that have a finite power supply. Therefore, non-volatile memories that retain data after power is removed are preferred.
While many consumer products use commodity flash memory, flash memory is indirectly used by consumers in products such as cell phones and devices with microprocessing functions. More specifically, the application specific integrated circuits (ASIC) commonly found in consumer electronics can have integrated flash memory to enable firmware upgrades. Needless to say, flash memory is versatile due to its optimal balance in size, storage density, and speed, making it a preferred non-volatile mass storage solution for consumer electronics.
It is well known to those skilled in the art that flash memory devices are subject to program disturb. More specifically, when a selected memory cell is to be programmed by driving a corresponding selected wordline to a programming voltage, unselected memory cells along the same wordline that are not be programmed can be inadvertently soft programmed. This is due to a problem where the biasing for establishing a program inhibit state for selected memory cells not to be programmed is insufficient for fully preventing these memory cells from being programmed. Furthermore, unselected memory cells in the flash memory are also subjected to program disturb because the applied voltages to the unselected wordlines during the programming operation are too high, which can result in a shifting of programmed or erased threshold voltages. This problem has been addressed with sequential programming schemes, however the prohibition of random page program operations results in performance degradation in applications because operational flexibility associated with random page programming is lost.